home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-07-04 | 46.4 KB | 2,059 lines |
- *** /usr/storm/nn6.3.1/patchlevel.h
- --- patchlevel.h
- **************
- *** 9,14
- * 1989-05-30: Distributed release 6.3 (World)
- *
- * 1989-06-06: Patch 1: rc.c
- */
-
- #define PATCHLEVEL 1
- --- 9,15 -----
- * 1989-05-30: Distributed release 6.3 (World)
- *
- * 1989-06-06: Patch 1: rc.c
- + * 1989-06-28: Patch 2: several files
- */
-
- #define PATCHLEVEL 2
- **************
- *** 11,15
- * 1989-06-06: Patch 1: rc.c
- */
-
- ! #define PATCHLEVEL 1
-
- --- 12,16 -----
- * 1989-06-28: Patch 2: several files
- */
-
- ! #define PATCHLEVEL 2
-
-
- *** /usr/storm/nn6.3.0/answer.c
- --- answer.c
- **************
- *** 256,263
- return 2;
- }
- } else {
- ! fputs("\rConfirm cancel: ", stdout); clrline();
- ! if (yes(1) <= 0) return 0;
- }
-
- f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
- --- 256,263 -----
- return 2;
- }
- } else {
- ! prompt("Confirm cancel: '%.50s'", ah->subject ? ah->subject : "");
- ! if (yes(1) <= 0) return 1;
- }
-
- f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
- **************
- *** 262,268
-
- f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
- if (f == NULL) {
- ! msg("Can't find original article");
- return 2;
- }
- fclose(f);
- --- 262,268 -----
-
- f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
- if (f == NULL) {
- ! msg("Article not found");
- return 2;
- }
- fclose(f);
- **************
- *** 275,281
-
- if (aux_sh("cancel",
- news.ng_ident, current_group->group_name, "Not canceled"))
- ! return 3;
-
- return 1;
- }
- --- 275,281 -----
-
- if (aux_sh("cancel",
- news.ng_ident, current_group->group_name, "Not canceled"))
- ! return -1;
-
- return 0;
- }
- **************
- *** 277,283
- news.ng_ident, current_group->group_name, "Not canceled"))
- return 3;
-
- ! return 1;
- }
-
-
- --- 277,283 -----
- news.ng_ident, current_group->group_name, "Not canceled"))
- return -1;
-
- ! return 0;
- }
-
-
-
- *** /usr/storm/nn6.3.0/data.h
- --- data.h
- **************
- *** 56,62
-
- # define G_SUBSCRIPTION CF(1) /* from .rc */
- # define G_READ CF(2) /* group has been read */
- - # define G_RC_UPDATED CF(3) /* .rc is updated */
- # define G_DONE CF(4) /* finished with this group */
- # define G_NEW CF(5) /* new group */
- # define G_FOLDER CF(6) /* "group" is a folder file */
- --- 56,61 -----
-
- # define G_SUBSCRIPTION CF(1) /* from .rc */
- # define G_READ CF(2) /* group has been read */
- # define G_DONE CF(4) /* finished with this group */
- # define G_NEW CF(5) /* new group */
- # define G_FOLDER CF(6) /* "group" is a folder file */
-
- *** /usr/storm/nn6.3.0/folder.c
- --- folder.c
- **************
- *** 402,408
- int cc_save;
-
- fake_group.group_name = path;
- ! fake_group.group_flag = G_RC_UPDATED | G_FOLDER | G_READ;
- init_group(&fake_group);
-
- folder = open_file(group_path_name, OPEN_READ);
- --- 402,409 -----
- int cc_save;
-
- fake_group.group_name = path;
- ! fake_group.group_flag = G_FOLDER | G_READ;
- ! current_group = NULL;
- init_group(&fake_group);
-
- folder = open_file(group_path_name, OPEN_READ);
- **************
- *** 486,493
- if (cancel_count) {
- clrdisp();
- printf("Folder: %s\nFile: %s\n\n", buffer, group_path_name);
- ! printf("Remove %d article%s from folder? ",
- ! cancel_count, cancel_count == 1 ? "" : "s");
- fl;
-
- switch (yes(1)) {
- --- 487,497 -----
- if (cancel_count) {
- clrdisp();
- printf("Folder: %s\nFile: %s\n\n", buffer, group_path_name);
- ! if (cancel_count == n_articles)
- ! printf("Cancel all articles and remove folder? ");
- ! else
- ! printf("Remove %d article%s from folder? ",
- ! cancel_count, cancel_count == 1 ? "" : "s");
- fl;
-
- switch (yes(1)) {
- **************
- *** 493,499
- switch (yes(1)) {
- case 1:
- printf("\n\n");
- ! rewrite_folder();
- break;
- case 0:
- break;
- --- 497,509 -----
- switch (yes(1)) {
- case 1:
- printf("\n\n");
- ! if (cancel_count == n_articles) {
- ! if (unlink(group_path_name) < 0) {
- ! printf("Could not unlink %s\n", group_path_name);
- ! sleep(3);
- ! }
- ! } else
- ! rewrite_folder();
- break;
- case 0:
- break;
- **************
- *** 526,533
-
- strcpy(oldfile, group_path_name);
- sp = strrchr(oldfile, '/');
- ! if (!sp) goto move_error;
- ! strcpy(sp+1, "~OLD~FOLDER~");
-
- unlink(oldfile);
- if (link(group_path_name, oldfile) < 0) goto move_error;
- --- 536,542 -----
-
- strcpy(oldfile, group_path_name);
- sp = strrchr(oldfile, '/');
- ! strcpy((sp == NULL ? oldfile : sp+1), "~OLD~FOLDER~");
-
- unlink(oldfile);
- if (link(group_path_name, oldfile) < 0) goto move_error;
-
- *** /usr/storm/nn6.3.0/group.c
- --- group.c
- **************
- *** 376,383
- if ((gh->last_article = gh->first_l_article - 1) < 0)
- gh->last_article = 0;
- gh->first_article = gh->last_article;
- ! updflag = gh->group_flag & (G_RC_UPDATED|G_READ);
- ! gh->group_flag &= ~(G_RC_UPDATED|G_READ);
- update_rc(gh);
- gh->group_flag &= ~(G_RC_UPDATED|G_READ);
- gh->group_flag |= updflag;
- --- 376,383 -----
- if ((gh->last_article = gh->first_l_article - 1) < 0)
- gh->last_article = 0;
- gh->first_article = gh->last_article;
- ! updflag = gh->group_flag & G_READ;
- ! gh->group_flag &= ~G_READ;
- update_rc(gh);
- gh->group_flag &= ~G_READ;
- gh->group_flag |= updflag;
- **************
- *** 379,385
- updflag = gh->group_flag & (G_RC_UPDATED|G_READ);
- gh->group_flag &= ~(G_RC_UPDATED|G_READ);
- update_rc(gh);
- ! gh->group_flag &= ~(G_RC_UPDATED|G_READ);
- gh->group_flag |= updflag;
- }
-
- --- 379,385 -----
- updflag = gh->group_flag & G_READ;
- gh->group_flag &= ~G_READ;
- update_rc(gh);
- ! gh->group_flag &= ~G_READ;
- gh->group_flag |= updflag;
- }
-
- **************
- *** 455,461
-
- if (menu_cmd == ME_READ || menu_cmd == ME_NO_ARTICLES) {
- if (did_selection) {
- ! int was_read = gh->group_flag & (G_READ|G_RC_UPDATED);
-
- prev_last = gh->last_l_article;
- gh->last_l_article = last_article;
- --- 455,461 -----
-
- if (menu_cmd == ME_READ || menu_cmd == ME_NO_ARTICLES) {
- if (did_selection) {
- ! int was_read = gh->group_flag & G_READ;
-
- prev_last = gh->last_l_article;
- gh->last_l_article = last_article;
- **************
- *** 463,469
- gh->last_l_article = prev_last;
-
- if (last_article < gh->last_l_article) {
- ! gh->group_flag &= ~ (G_READ|G_RC_UPDATED);
- gh->group_flag |= was_read;
- release_memory(&sel_marker);
- goto after_selection;
- --- 463,469 -----
- gh->last_l_article = prev_last;
-
- if (last_article < gh->last_l_article) {
- ! gh->group_flag &= ~G_READ;
- gh->group_flag |= was_read;
- release_memory(&sel_marker);
- goto after_selection;
- **************
- *** 470,479
- }
- } else
- if (submask == NULL && !also_read_articles &&
- ! (menu_cmd != ME_NO_ARTICLES ||
- ! (gh->group_flag & G_NEW) == 0) &&
- ! (first_art == -1 ||
- ! current_first_article == gh->first_article + 1))
- update_rc(gh);
- }
-
- --- 470,478 -----
- }
- } else
- if (submask == NULL && !also_read_articles &&
- ! (first_art == -1 || current_first_article == gh->first_article + 1)) {
- ! if (menu_cmd != ME_NO_ARTICLES)
- ! gh->group_flag &= ~G_NEW;
- update_rc(gh);
- }
- }
- **************
- *** 475,480
- (first_art == -1 ||
- current_first_article == gh->first_article + 1))
- update_rc(gh);
- }
-
- current_first_article = o_first_article;
- --- 474,480 -----
- if (menu_cmd != ME_NO_ARTICLES)
- gh->group_flag &= ~G_NEW;
- update_rc(gh);
- + }
- }
-
- current_first_article = o_first_article;
- **************
- *** 890,896
- if (yes(0) <= 0) return 0;
-
- add_unread(gh, -1);
- ! gh->group_flag &= ~G_SUBSCRIPTION;
- write_rc_entry(gh, 0);
- return 1;
- }
- --- 890,896 -----
- if (yes(0) <= 0) return 0;
-
- add_unread(gh, -1);
- ! gh->group_flag &= ~(G_SUBSCRIPTION | G_NEW);
- write_rc_entry(gh, 0);
- return 1;
- }
-
- *** /usr/storm/nn6.3.0/keymap.c
- --- keymap.c
- **************
- *** 418,423
- "compress", K_COMPRESS, K_ONLY_MORE,
- "continue", K_CONTINUE, 0,
-
- "find", K_GOTO_MATCH, K_ONLY_MORE,
- "find-next", K_NEXT_MATCH, K_ONLY_MORE,
- "follow", K_FOLLOW_UP, 0,
- --- 418,425 -----
- "compress", K_COMPRESS, K_ONLY_MORE,
- "continue", K_CONTINUE, 0,
-
- + "decode", K_UUDECODE, 0,
- +
- "find", K_GOTO_MATCH, K_ONLY_MORE,
- "find-next", K_NEXT_MATCH, K_ONLY_MORE,
- "follow", K_FOLLOW_UP, 0,
-
- *** /usr/storm/nn6.3.0/keymap.h
- --- keymap.h
- **************
- *** 35,40
- #define K_UNSUBSCRIBE 0x001b /* (un)subscribe to group */
- #define K_GROUP_OVERVIEW 0x001c /* group overview */
- #define K_PATCH 0x001d /* pipe article to patch */
-
- #define K_GOTO_GROUP 0x0020 /* goto named group/folder */
-
- --- 35,41 -----
- #define K_UNSUBSCRIBE 0x001b /* (un)subscribe to group */
- #define K_GROUP_OVERVIEW 0x001c /* group overview */
- #define K_PATCH 0x001d /* pipe article to patch */
- + #define K_UUDECODE 0x001e /* uudecode articles */
-
- #define K_GOTO_GROUP 0x0020 /* goto named group/folder */
-
-
- *** /usr/storm/nn6.3.0/init.c
- --- init.c
- **************
- *** 190,195
- "cd", 2, 1,
- "compile", 7, 0,
- "coredump", 8, 0,
- "define", 6, 0,
- "help", 4, 2,
- "man", 3, 0,
- --- 190,196 -----
- "cd", 2, 1,
- "compile", 7, 0,
- "coredump", 8, 0,
- + "decode", 6, 0,
- "define", 6, 0,
- "help", 4, 2,
- "man", 3, 0,
- **************
- *** 550,557
- }
-
- CASE( "unread" ) {
- ! if (restore_rc(current_group, argv(2) ? ARGVAL(2) : 0))
- ! return AC_HEADER;
- break;
- }
-
- --- 551,566 -----
- }
-
- CASE( "unread" ) {
- ! group_header *gh;
- ! int ix = 1;
- !
- ! if (argv(1) && (gh = lookup(argv(1))) != NULL)
- ! ix = 2;
- ! else
- ! gh = current_group;
- !
- ! if (restore_rc(gh, argv(ix) ? ARGVAL(ix) : 0))
- ! if (gh == current_group) return AC_HEADER;
- break;
- }
-
-
- *** /usr/storm/nn6.3.1/install_aux
- --- install_aux
- **************
- *** 26,32
-
- echo "INSTALLATION COMPLETED"
-
- ! if [ -n "$2" ]
- then
- echo
- echo "--------------------------------------------------------"
- --- 26,32 -----
-
- echo "INSTALLATION COMPLETED"
-
- ! if [ $# -gt 1 ]
- then
- echo
- echo "--------------------------------------------------------"
-
- *** /usr/storm/nn6.3.0/MANIFEST
- --- MANIFEST
- **************
- *** 20,25
- db.c
- db.h
- debug.h
- digest.c
- execute.c
- expire.c
- --- 20,26 -----
- db.c
- db.h
- debug.h
- + decode.c
- digest.c
- execute.c
- expire.c
- **************
- *** 96,101
- routes.sample
- s-bsd4-2.h
- s-bsd4-3.h
- s-hpux.h
- s-hpux2-1.h
- s-sunos3.h
- --- 97,103 -----
- routes.sample
- s-bsd4-2.h
- s-bsd4-3.h
- + s-dnix5-2.h
- s-hpux.h
- s-hpux2-1.h
- s-hpux3-0.h
- **************
- *** 98,103
- s-bsd4-3.h
- s-hpux.h
- s-hpux2-1.h
- s-sunos3.h
- s-sunos4-0.h
- s-template.h
- --- 100,106 -----
- s-dnix5-2.h
- s-hpux.h
- s-hpux2-1.h
- + s-hpux3-0.h
- s-sunos3.h
- s-sunos4-0.h
- s-template.h
-
- *** /usr/storm/nn6.3.0/menu.c
- --- menu.c
- **************
- *** 433,439
- }
-
- last_k_cmd = cur_k_cmd;
- ! cur_k_cmd = k_cmd = get_k_cmd();
- if (any_message) clrmsg(-1);
-
- alt_key:
- --- 433,439 -----
- }
-
- last_k_cmd = cur_k_cmd;
- ! k_cmd = get_k_cmd();
- if (any_message) clrmsg(-1);
-
- alt_key:
- **************
- *** 438,444
-
- alt_key:
-
- ! switch (k_cmd) {
-
- case K_UNBOUND:
- ding();
- --- 438,444 -----
-
- alt_key:
-
- ! switch (cur_k_cmd = k_cmd) {
-
- case K_UNBOUND:
- ding();
- **************
- *** 494,499
- case K_QUIT:
- menu_return(ME_QUIT);
-
- case K_SAVE_NO_HEADER:
- case K_SAVE_SHORT_HEADER:
- case K_SAVE_FULL_HEADER:
- --- 494,504 -----
- case K_QUIT:
- menu_return(ME_QUIT);
-
- + case K_CANCEL:
- + savemode = "Cancel";
- + fname = "";
- + goto cancel1;
- +
- case K_SAVE_NO_HEADER:
- case K_SAVE_SHORT_HEADER:
- case K_SAVE_FULL_HEADER:
- **************
- *** 500,506
- case K_PRINT:
- case K_UNSHAR:
- case K_PATCH:
- !
- if (numa < 0) goto nextmenu;
-
- fname = init_save(k_cmd, &savemode);
- --- 505,512 -----
- case K_PRINT:
- case K_UNSHAR:
- case K_PATCH:
- ! case K_UUDECODE:
- !
- if (numa < 0) goto nextmenu;
-
- fname = init_save(k_cmd, &savemode);
- **************
- *** 506,511
- fname = init_save(k_cmd, &savemode);
- if (fname == NULL) goto Prompt;
-
- enable_stop = 0;
- save_selected = 0;
- doing_unshar = k_cmd == K_UNSHAR || k_cmd == K_PATCH;
- --- 512,518 -----
- fname = init_save(k_cmd, &savemode);
- if (fname == NULL) goto Prompt;
-
- + cancel1:
- enable_stop = 0;
- save_selected = 0;
- doing_unshar = k_cmd == K_UNSHAR || k_cmd == K_PATCH;
- **************
- *** 542,547
- ah = articles[article_id];
- if (save_selected && (ah->flag & A_SELECT) == 0) continue;
-
- if (doing_unshar) {
- did_unshar++;
- } else
- --- 549,576 -----
- ah = articles[article_id];
- if (save_selected && (ah->flag & A_SELECT) == 0) continue;
-
- + if (cur_k_cmd == K_CANCEL) {
- + if (current_group->group_flag & G_FOLDER) {
- + if ((ah->flag & A_CANCEL) == 0) fcancel(ah);
- + } else
- + switch (cancel(ah)) {
- + case -1:
- + did_unshar = 1;
- + continue;
- + case 0:
- + ah->flag |= A_CANCEL;
- + break;
- + default:
- + continue;
- + }
- +
- + if (!did_unshar) {
- + how = CANCEL;
- + mark();
- + }
- + continue;
- + }
- +
- if (doing_unshar) {
- did_unshar++;
- } else
- **************
- *** 547,552
- } else
- if (cura >= 0 && cura <= numa)
- prompt("Processing %c...", ident[cura]);
- else
- prompt("Processing entry %d...", article_id);
-
- --- 576,583 -----
- } else
- if (cura >= 0 && cura <= numa)
- prompt("Processing %c...", ident[cura]);
- + else if (ah->subject != NULL)
- + prompt("Processing '%.50s'...", ah->subject);
- else
- prompt("Processing entry %d...", article_id);
-
- **************
- *** 572,578
- m_endinput();
-
- enable_stop = 1;
- ! end_save();
-
- if (did_unshar) {
- any_key(0);
- --- 603,610 -----
- m_endinput();
-
- enable_stop = 1;
- ! if (cur_k_cmd != K_CANCEL)
- ! end_save();
-
- if (did_unshar) {
- printf("\r\n");
- **************
- *** 575,580
- end_save();
-
- if (did_unshar) {
- any_key(0);
- goto redraw;
- }
- --- 607,613 -----
- end_save();
-
- if (did_unshar) {
- + printf("\r\n");
- any_key(0);
- goto redraw;
- }
- **************
- *** 612,618
- goto redraw;
-
- goto Prompt;
- !
- case K_CANCEL:
- if (numa < 0) goto nextmenu;
-
- --- 645,651 -----
- goto redraw;
-
- goto Prompt;
- ! /*
- case K_CANCEL:
- if (numa < 0) goto nextmenu;
-
- **************
- *** 632,638
- if (get_k_cmd() == K_ARTICLE_ID)
- if (cancel(articles[firsta+article_id]) & 1) goto redraw;
- goto Prompt;
- !
- case K_UNSUBSCRIBE:
- if (unsubscribe(current_group)) {
- if (!(current_group->group_flag & G_SUBSCRIPTION))
- --- 665,671 -----
- if (get_k_cmd() == K_ARTICLE_ID)
- if (cancel(articles[firsta+article_id]) & 1) goto redraw;
- goto Prompt;
- ! */
- case K_UNSUBSCRIBE:
- if (unsubscribe(current_group)) {
- if (!(current_group->group_flag & G_SUBSCRIPTION))
-
- *** /usr/storm/nn6.3.0/mk_online_man
- --- mk_online_man
- **************
- *** 6,11
- -e '/^\.\\"/d' \
- -e '/^\.nf/d' \
- -e '/^\.fi/d' \
- -e 's/^\.[BI] //' "$@" |
- awk '
- BEGIN {
- --- 6,15 -----
- -e '/^\.\\"/d' \
- -e '/^\.nf/d' \
- -e '/^\.fi/d' \
- + -e '/^\.if/d' \
- + -e '/^\.DT/d' \
- + -e '/^\.ta/d' \
- + -e '/^\.nr/d' \
- -e 's/^\.[BI] //' "$@" |
- awk '
- BEGIN {
-
- *** /usr/storm/nn6.3.0/more.c
- --- more.c
- **************
- *** 58,64
- register c, col, lno;
- register FILE *art;
- int more_cmd, eof, skip_spaces, has_space, window_lines;
- ! int form_feed, ignore_nl;
- off_t firstl, lastl;
- off_t linepos[LINEMAX];
- char linebuf[200], *lp;
- --- 58,64 -----
- register c, col, lno;
- register FILE *art;
- int more_cmd, eof, skip_spaces, has_space, window_lines;
- ! int form_feed, last_ff_line, ignore_nl;
- off_t firstl, lastl;
- off_t linepos[LINEMAX];
- char linebuf[200], *lp;
- **************
- *** 141,147
-
- rot13 = 0;
- compress_space = 0;
- ! goto_line = -1, prev_goto = 1;
- match_lines = match_redraw = match_expr = 0;
- underline_line = -1;
- fake_underline = 0;
- --- 141,147 -----
-
- rot13 = 0;
- compress_space = 0;
- ! last_ff_line = goto_line = -1, prev_goto = 1;
- match_lines = match_redraw = match_expr = 0;
- underline_line = -1;
- fake_underline = 0;
- **************
- *** 398,403
- switch (c) {
-
- case '\f':
- if (lp == linebuf) {
- if (goto_line && lno == lno1) goto next_line;
- form_feed = 1;
- --- 398,404 -----
- switch (c) {
-
- case '\f':
- + last_ff_line = linenum;
- if (lp == linebuf) {
- if (goto_line > 0 || match_expr || lno == lno1) goto next_line;
- form_feed = 1;
- **************
- *** 399,405
-
- case '\f':
- if (lp == linebuf) {
- ! if (goto_line && lno == lno1) goto next_line;
- form_feed = 1;
- goto Prompt;
- }
- --- 400,406 -----
- case '\f':
- last_ff_line = linenum;
- if (lp == linebuf) {
- ! if (goto_line > 0 || match_expr || lno == lno1) goto next_line;
- form_feed = 1;
- goto Prompt;
- }
- **************
- *** 475,480
- match_lines = 1;
- if (linenum > match_botline) {
- match_redraw = 0;
- linenum -= 5;
- goto next_page;
- }
- --- 476,482 -----
- match_lines = 1;
- if (linenum > match_botline) {
- match_redraw = 0;
- + if (last_ff_line > linenum) last_ff_line = -1;
- linenum -= 5;
- if (linenum < last_ff_line) linenum = last_ff_line;
- goto next_page;
- **************
- *** 476,481
- if (linenum > match_botline) {
- match_redraw = 0;
- linenum -= 5;
- goto next_page;
- }
- match_redraw = (stop_line < 0);
- --- 478,484 -----
- match_redraw = 0;
- if (last_ff_line > linenum) last_ff_line = -1;
- linenum -= 5;
- + if (linenum < last_ff_line) linenum = last_ff_line;
- goto next_page;
- }
- match_redraw = (stop_line < 0);
- **************
- *** 665,670
- case K_PRINT:
- case K_UNSHAR:
- case K_PATCH:
-
- putchar(CR);
- if (init_save(c, (char **)NULL) != NULL) {
- --- 668,674 -----
- case K_PRINT:
- case K_UNSHAR:
- case K_PATCH:
- + case K_UUDECODE:
-
- putchar(CR);
- if (init_save(c, (char **)NULL) != NULL) {
- **************
- *** 695,701
- goto Prompt;
- }
-
- ! if (cancel(ah) == 0) goto Prompt;
- more_return(MC_NEXT);
-
- case K_UNSUBSCRIBE:
- --- 699,705 -----
- goto Prompt;
- }
-
- ! if (cancel(ah) > 0) goto Prompt;
- more_return(MC_NEXT);
-
- case K_UNSUBSCRIBE:
-
- *** /usr/storm/nn6.3.0/nn.1
- --- nn.1
- **************
- *** 768,773
- article through the patch command.
- The output from the patch process will be piped through the pager
- defined in the \fBpager\fP variable and appear on the screen.
- .TP
- \&\fB:unshar\fP {\fBunshar\fP}
- Unshar articles. You will be prompted for the name of a directory in
- --- 768,775 -----
- article through the patch command.
- The output from the patch process will be piped through the pager
- defined in the \fBpager\fP variable and appear on the screen.
- + The output is also saved in (or appended to) a file named
- + \fIPatch.Result\fP in the patch directory.
- .TP
- \&\fB:unshar\fP {\fBunshar\fP}
- Unshar articles. You will be prompted for the name of a directory in
- **************
- *** 777,782
- During the unpacking, the normal output from the unshar process will
- appear on the screen, and the menu or article text will be redrawn when
- the process is finished.
- .LP
- In reading mode, the following keys can also be used to invoke the
- save commands:
- --- 779,802 -----
- During the unpacking, the normal output from the unshar process will
- appear on the screen, and the menu or article text will be redrawn when
- the process is finished.
- + The output is also saved in (or appended to) a file named
- + \fIUnshar.Result\fP in the unshar directory.
- + .TP
- + \&\fB:decode\fP {\fBdecode\fP}
- + Decode \fIuuencoded\fP articles into binary files. You will be
- + prompted for the name of a directory in which you want \fInn\fP to
- + place the decoded binary files (the file names are taken from the
- + uuencoded data).
- + \fInn\fP will combine several articles into single files as needed,
- + and you can even decode unrelated packages (into the same directory)
- + with one \fBdecode\fP command.
- + To be able to decode a binary file which spans several articles,
- + \fInn\fP may have to \fIignore\fP lines which fail the normal sanity checks
- + on uuencoded data instead of treating them as \fItransmission errors\fP.
- + Consequently, it is strongly recommended to check the resulting
- + decoded file using the checksum which is normally contained in the
- + original article. (Actually, you are also supposed to do this after
- + decoding with a stand-alone uudecode program).
- .LP
- In reading mode, the following keys can also be used to invoke the
- save commands:
- **************
- *** 1546,1553
- in the order in which they arrived on the local system (which is a
- completely arbitrary order).
- .TP
- ! \fB:unread\fP [ \fIarticles\fP ]
- ! Mark the current group as unread. If the argument is omitted, the
- number of unread articles in the group will be set to the number of
- unread articles when \fInn\fP was invoked. Otherwise, the argument
- specifies the number of unread articles.
- --- 1566,1574 -----
- in the order in which they arrived on the local system (which is a
- completely arbitrary order).
- .TP
- ! \fB:unread\fP [ \fIgroup\fP ] [ \fIarticles\fP ]
- ! Mark the current (or specified) group as unread. If the
- ! \fIarticles\fP argument is omitted, the
- number of unread articles in the group will be set to the number of
- unread articles when \fInn\fP was invoked. Otherwise, the argument
- specifies the number of unread articles.
-
- *** /usr/storm/nn6.3.0/nngrep.sh
- --- nngrep.sh
- **************
- *** 8,13
- if [ "$1" = "-a" ] ; then
- grep "$2" .nn/rc
- else
- ! grep "^+ .* .*$1" .nn/rc
- fi |
- awk '{print $3}'
- --- 8,13 -----
- if [ "$1" = "-a" ] ; then
- grep "$2" .nn/rc
- else
- ! grep "^[+=] .* .*$1" .nn/rc
- fi |
- awk '{print $3}'
-
- *** /usr/storm/nn6.3.0/nntidy.sh
- --- nntidy.sh
- **************
- *** 35,41
- if (act) {
- X[$1] = 1
- L[$1] = $2+0
- ! if (L[$1] == 0) F[$1] = 0; else F[$1] = $3+0
- }
- next
- }
- --- 35,41 -----
- if (act) {
- X[$1] = 1
- L[$1] = $2+0
- ! if (L[$1] == 0 || $3+0 == 0) F[$1] = 0; else F[$1] = $3-1
- }
- next
- }
- **************
- *** 43,49
- print $0
- next
- }
- ! NF == 3 && ($1 == "!" || $1 == "+") {
- if (X[$3] != 1) next
- S[$3] = $1
- if (L[$3] >= $2+0)
- --- 43,49 -----
- print $0
- next
- }
- ! NF == 3 && ($1 == "!" || $1 == "+" || $1 == "=") {
- if (X[$3] != 1) next
- S[$3] = $1
- if (L[$3] >= $2+0)
-
- *** /usr/storm/nn6.3.0/nntp.c
- --- nntp.c
- **************
- *** 32,38
- #include <netdb.h>
-
- /* This is necessary due to the definitions in m-XXX.h */
- ! #ifdef NETWORK_BYTE_ORDER
- #include <netinet/in.h>
- #endif
-
- --- 32,38 -----
- #include <netdb.h>
-
- /* This is necessary due to the definitions in m-XXX.h */
- ! #ifndef NETWORK_DATABASE
- #include <netinet/in.h>
- #else
- #ifdef NETWORK_BYTE_ORDER
- **************
- *** 34,39
- /* This is necessary due to the definitions in m-XXX.h */
- #ifdef NETWORK_BYTE_ORDER
- #include <netinet/in.h>
- #endif
-
- export char nntp_server[256]; /* name of nntp server */
- --- 34,42 -----
- /* This is necessary due to the definitions in m-XXX.h */
- #ifndef NETWORK_DATABASE
- #include <netinet/in.h>
- + #else
- + #ifdef NETWORK_BYTE_ORDER
- + #include <netinet/in.h>
- #endif
- #endif
-
- **************
- *** 35,40
- #ifdef NETWORK_BYTE_ORDER
- #include <netinet/in.h>
- #endif
-
- export char nntp_server[256]; /* name of nntp server */
- export int use_nntp = 0; /* bool: t iff we use nntp */
- --- 38,44 -----
- #ifdef NETWORK_BYTE_ORDER
- #include <netinet/in.h>
- #endif
- + #endif
-
- export char nntp_server[256]; /* name of nntp server */
- export int use_nntp = 0; /* bool: t iff we use nntp */
- **************
- *** 150,155
- fl;
- }
- nntp_failed = 1;
-
- sockt_rd = nntp_get_socket();
- if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
- --- 154,160 -----
- fl;
- }
- nntp_failed = 1;
- + is_connected = 0;
-
- sockt_rd = nntp_get_socket();
- if (sockt_rd < 0)
- **************
- *** 152,158
- nntp_failed = 1;
-
- sockt_rd = nntp_get_socket();
- ! if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
- return -1;
-
- sockt_wr = dup(sockt_rd);
- --- 157,167 -----
- is_connected = 0;
-
- sockt_rd = nntp_get_socket();
- ! if (sockt_rd < 0)
- ! return -1;
- !
- ! if ((nntp_in = fdopen(sockt_rd, "r")) == NULL) {
- ! close(sockt_rd);
- return -1;
- }
- sockt_wr = dup(sockt_rd);
- **************
- *** 154,160
- sockt_rd = nntp_get_socket();
- if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
- return -1;
- !
- sockt_wr = dup(sockt_rd);
- if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
- nntp_in = NULL; /* from above */
- --- 163,169 -----
- if ((nntp_in = fdopen(sockt_rd, "r")) == NULL) {
- close(sockt_rd);
- return -1;
- ! }
- sockt_wr = dup(sockt_rd);
- if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
- close(sockt_wr);
- **************
- *** 157,162
-
- sockt_wr = dup(sockt_rd);
- if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
- nntp_in = NULL; /* from above */
- return -1;
- }
- --- 166,173 -----
- }
- sockt_wr = dup(sockt_rd);
- if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
- + close(sockt_wr);
- + fclose(nntp_in);
- nntp_in = NULL; /* from above */
- return -1;
- }
- **************
- *** 228,233
- if (!is_master)
- msg("Connecting to %s: %s", nntp_server, syserr());
- (void) close(s);
- }
- if (x < 0 && !is_master)
- (*errfct)("Giving up on NNTP server %s!\n", nntp_server);
- --- 239,245 -----
- if (!is_master)
- msg("Connecting to %s: %s", nntp_server, syserr());
- (void) close(s);
- + s = -1;
- }
- if (x < 0 && !is_master)
- (*errfct)("Giving up on NNTP server %s!\n", nntp_server);
- **************
- *** 240,245
- if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
- if (is_master)
- (*errfct)("Connecting to %s: %s", nntp_server, syserr());
- }
-
- #endif
- --- 252,258 -----
- if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
- if (is_master)
- (*errfct)("Connecting to %s: %s", nntp_server, syserr());
- + s = -1;
- }
-
- #endif
- **************
- *** 261,266
- fprintf(nntp_out, "%s\r\n", string);
- if (fflush(nntp_out) == EOF) {
- nntp_error();
- }
- }
-
- --- 274,280 -----
- fprintf(nntp_out, "%s\r\n", string);
- if (fflush(nntp_out) == EOF) {
- nntp_error();
- + return -1;
- }
- return 0;
- }
- **************
- *** 262,267
- if (fflush(nntp_out) == EOF) {
- nntp_error();
- }
- }
-
- /*
- --- 276,282 -----
- nntp_error();
- return -1;
- }
- + return 0;
- }
-
- /*
- **************
- *** 277,283
- {
- register char *cp, *nl;
-
- - errno = 0;
- if (fgets(string, size, nntp_in) == NULL) {
- nntp_error();
- return -1;
- --- 292,297 -----
- {
- register char *cp, *nl;
-
- if (fgets(string, size, nntp_in) == NULL) {
- nntp_error();
- return -1;
- **************
- *** 323,329
- if (!nntp_failed) { /* avoid infinite recursion */
- char line[NNTP_STRLEN];
-
- ! nntp_put_server("QUIT");
- (void) nntp_get_server(line, sizeof line);
- }
-
- --- 337,343 -----
- if (!nntp_failed) { /* avoid infinite recursion */
- char line[NNTP_STRLEN];
-
- ! (void) nntp_put_server("QUIT");
- (void) nntp_get_server(line, sizeof line);
- }
-
- **************
- *** 344,352
- char *string;
- int size;
- {
- ! (void)nntp_put_server(string);
- !
- ! if (nntp_get_server(string, size) < 0)
- return -1;
- #ifdef DEBUG
- msg("<<< %.75s", string);
- --- 358,364 -----
- char *string;
- int size;
- {
- ! if (nntp_put_server(string) < 0 || nntp_get_server(string, size) < 0)
- return -1;
- #ifdef DEBUG
- msg("<<< %.75s", string);
- **************
- *** 367,374
- {
- nntp_failed = 1;
- if (is_master) {
- ! log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
- ! if (is_connected)
- nntp_close_server();
- } else {
- #ifdef DEBUG
- --- 379,386 -----
- {
- nntp_failed = 1;
- if (is_master) {
- ! if (is_connected) {
- ! log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
- nntp_close_server();
- }
- } else {
- **************
- *** 370,375
- log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
- if (is_connected)
- nntp_close_server();
- } else {
- #ifdef DEBUG
- printf("Can't talk to NNTP server %s: %s", nntp_server, syserr());
- --- 382,388 -----
- if (is_connected) {
- log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
- nntp_close_server();
- + }
- } else {
- #ifdef DEBUG
- printf("Can't talk to NNTP server %s: %s", nntp_server, syserr());
-
- *** /usr/storm/nn6.3.0/nnusage.sh
- --- nnusage.sh
- **************
- *** 8,16
-
- grep '^U:' $LIB/Log |
-
- ! awk '
- ! NF == 7 {
- ! if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
- }
- END {
- for (n in u) {
- --- 8,16 -----
-
- grep '^U:' $LIB/Log |
-
- ! awk '
- ! BEGIN {
- ! any=0
- }
- NF == 7 {
- if (split($7, t, ".") == 2) {
- **************
- *** 12,17
- NF == 7 {
- if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
- }
- END {
- for (n in u) {
- name=substr(n, 2, length(n)-3)
- --- 12,23 -----
- BEGIN {
- any=0
- }
- + NF == 7 {
- + if (split($7, t, ".") == 2) {
- + u[$5] += t[1] * 60 + t[2]
- + any=1
- + }
- + }
- END {
- if (!any) {
- printf("No usage statistics\n")
- **************
- *** 13,18
- if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
- }
- END {
- for (n in u) {
- name=substr(n, 2, length(n)-3)
- printf("%s%16d.%02d\n", name, u[n]/60, u[n]%60);
- --- 19,28 -----
- }
- }
- END {
- + if (!any) {
- + printf("No usage statistics\n")
- + exit
- + }
- for (n in u) {
- name=substr(n, 2, length(n)-3)
- printf("%-10.10s%8d.%02d\n", name, u[n]/60, u[n]%60);
- **************
- *** 15,21
- END {
- for (n in u) {
- name=substr(n, 2, length(n)-3)
- ! printf("%s%16d.%02d\n", name, u[n]/60, u[n]%60);
- }
- }' |
-
- --- 25,31 -----
- }
- for (n in u) {
- name=substr(n, 2, length(n)-3)
- ! printf("%-10.10s%8d.%02d\n", name, u[n]/60, u[n]%60);
- }
- }' |
-
-
- *** /usr/storm/nn6.3.0/prefix.sh
- --- prefix.sh
- **************
- *** 5,10
- #include "update.h"
-
- --------CUT PREFIX HERE--------
- &!/bin/sh
-
- & Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
- --- 5,11 -----
- #include "update.h"
-
- --------CUT PREFIX HERE--------
- + #ifndef AVOID_SHELL_EXEC
- &!/bin/sh
- #endif
-
- **************
- *** 6,11
-
- --------CUT PREFIX HERE--------
- &!/bin/sh
-
- & Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
-
- --- 7,13 -----
- --------CUT PREFIX HERE--------
- #ifndef AVOID_SHELL_EXEC
- &!/bin/sh
- + #endif
-
- & Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
-
-
- *** /usr/storm/nn6.3.1/rc.c
- --- rc.c
- **************
- *** 45,51
- * master file has been read in
- */
-
- ! #define G_OLD G_NEW /* inverse use during rc reading */
- #define G_RENUM G_DONE
-
-
- --- 45,51 -----
- * master file has been read in
- */
-
- ! #define G_OLD G_SELECTION
- #define G_RENUM G_DONE
-
-
- **************
- *** 166,172
- fputc(NL, bak);
- }
-
- ! if (SUBSCR(line) != '+' && SUBSCR(line) != '!') {
- /* unrecognized line */
- continue;
- }
- --- 166,172 -----
- fputc(NL, bak);
- }
-
- ! if (SUBSCR(line) != '+' && SUBSCR(line) != '!' && SUBSCR(line) != '=') {
- /* unrecognized line */
- continue;
- }
- **************
- *** 182,188
- gh->group_flag |= G_OLD;
- if (SUBSCR(line) == '+')
- gh->group_flag |= G_SUBSCRIPTION;
- !
- gh->last_article = LASTART(line);
-
- if (gh->last_article > gh->last_l_article)
- --- 182,190 -----
- gh->group_flag |= G_OLD;
- if (SUBSCR(line) == '+')
- gh->group_flag |= G_SUBSCRIPTION;
- ! if (SUBSCR(line) == '=')
- ! gh->group_flag |= G_SUBSCRIPTION | G_NEW;
- !
- gh->last_article = LASTART(line);
-
- if (gh->last_article > gh->last_l_article)
- **************
- *** 207,213
- if (gh->group_flag & G_OLD) {
- if (gh->group_flag & G_RENUM) /* group is renumbered */
- write_rc_entry(gh, 0);
- ! gh->group_flag &= ~(G_NEW | G_RENUM);
- } else {
- gh->group_flag |= G_SUBSCRIPTION | G_NEW;
- gh->last_article = gh->first_l_article - 1;
- --- 209,215 -----
- if (gh->group_flag & G_OLD) {
- if (gh->group_flag & G_RENUM) /* group is renumbered */
- write_rc_entry(gh, 0);
- ! gh->group_flag &= ~(G_OLD | G_RENUM);
- } else {
- gh->group_flag |= G_SUBSCRIPTION | G_NEW;
- gh->last_article = gh->first_l_article - 1;
- **************
- *** 272,278
- {
- add_unread(gh, -1);
-
- ! if (no_update || gh->group_flag & G_RC_UPDATED) return;
-
- gh->last_article = gh->last_l_article;
-
- --- 274,280 -----
- {
- add_unread(gh, -1);
-
- ! if (no_update || gh->group_flag & G_READ) return;
-
- gh->last_article = gh->last_l_article;
-
- **************
- *** 284,291
-
- write_rc_entry(gh, 0);
-
- - if (gh->group_flag & G_READ) return;
- -
- gh->group_flag |= G_READ;
-
- if ((gh->group_flag & G_SUBSCRIPTION) == 0) return;
- --- 286,291 -----
-
- write_rc_entry(gh, 0);
-
- gh->group_flag |= G_READ;
- }
-
- **************
- *** 287,294
- if (gh->group_flag & G_READ) return;
-
- gh->group_flag |= G_READ;
- -
- - if ((gh->group_flag & G_SUBSCRIPTION) == 0) return;
- }
-
-
- --- 287,292 -----
- write_rc_entry(gh, 0);
-
- gh->group_flag |= G_READ;
- }
-
-
- **************
- *** 296,302
- register group_header *gh;
- long count;
- {
- ! if (no_update || (count == 0 && (gh->group_flag & G_RC_UPDATED) == 0))
- return 0;
-
- if (gh->group_flag & G_READ || count > 0) {
- --- 294,300 -----
- register group_header *gh;
- long count;
- {
- ! if (no_update || (count == 0 && (gh->group_flag & G_READ) == 0))
- return 0;
-
- if (gh->group_flag & G_READ || count > 0) {
- **************
- *** 318,324
-
- write_rc_entry(gh, 0);
-
- ! gh->group_flag &= ~(G_READ|G_RC_UPDATED);
-
- add_unread(gh, 1);
-
- --- 316,322 -----
-
- write_rc_entry(gh, 0);
-
- ! gh->group_flag &= ~G_READ;
-
- add_unread(gh, 1);
-
- **************
- *** 469,474
- /* update article number */
-
- fprintf(rc, "%c %06ld", /* MUST CHANGE IF LASTARTZ CHANGES */
- (gh->group_flag & G_SUBSCRIPTION) ? '+' : '!',
- (long)(gh->last_article));
-
- --- 467,473 -----
- /* update article number */
-
- fprintf(rc, "%c %06ld", /* MUST CHANGE IF LASTARTZ CHANGES */
- + (gh->group_flag & G_NEW) ? '=' :
- (gh->group_flag & G_SUBSCRIPTION) ? '+' : '!',
- (long)(gh->last_article));
-
- **************
- *** 570,578
-
- /* Notice: unread articles before the last read article are lost */
-
- - if (*sub == NL) /* new group */
- - continue;
- -
- if (subscr) {
- last = strrchr(sub, '-');
- if (last == NULL) last = strrchr(sub, ',');
- --- 569,574 -----
-
- /* Notice: unread articles before the last read article are lost */
-
- if (subscr) {
- if (*sub == NL) continue; /* new group */
-
- **************
- *** 574,579
- continue;
-
- if (subscr) {
- last = strrchr(sub, '-');
- if (last == NULL) last = strrchr(sub, ',');
- if (last == NULL) last = strrchr(sub, ' ');
- --- 570,577 -----
- /* Notice: unread articles before the last read article are lost */
-
- if (subscr) {
- + if (*sub == NL) continue; /* new group */
- +
- last = strrchr(sub, '-');
- if (last == NULL) last = strrchr(sub, ',');
- if (last == NULL) last = strrchr(sub, ' ');
-
- *** /usr/storm/nn6.3.0/s-template.h
- --- s-template.h
- **************
- *** 128,133
- #define SHELL "/bin/sh"
-
- /*
- * Specify the default mailer to be invoked by nnmail
- */
-
- --- 128,142 -----
- #define SHELL "/bin/sh"
-
- /*
- + * Define AVOID_SHELL_EXEC if the system gets confused by
- + * #!/bin/sh
- + * lines in shell scripts, e.g. only reads #! and thinks it
- + * is a csh script.
- + */
- +
- + /* #define AVOID_SHELL_EXEC /* */
- +
- + /*
- * Specify the default mailer to be invoked by nnmail
- */
-
-
- *** /usr/storm/nn6.3.0/save.c
- --- save.c
- **************
- *** 44,49
- #define IS_PIPE 0x1000 /* output is on pipe */
- #define DO_UNSHAR 0x2000 /* unshar article (or patch) */
- #define DO_PATCH 0x4000 /* patch article */
-
- /* open modes for open_news_article for the various HEADER_HANDLINGs */
-
- --- 44,50 -----
- #define IS_PIPE 0x1000 /* output is on pipe */
- #define DO_UNSHAR 0x2000 /* unshar article (or patch) */
- #define DO_PATCH 0x4000 /* patch article */
- + #define DO_DECODE 0x8000 /* uudecode article */
-
- /* open modes for open_news_article for the various HEADER_HANDLINGs */
-
- **************
- *** 144,149
- }
- break;
-
- case K_PATCH:
- save_mode = NO_HEADER | SEPARATE_FILES | DO_UNSHAR | DO_PATCH;
- mode_text = "Patch";
- --- 145,155 -----
- }
- break;
-
- + case K_UUDECODE:
- + save_mode = NO_HEADER | DO_UNSHAR | DO_DECODE;
- + mode_text = "Decode";
- + goto patch1;
- +
- case K_PATCH:
- save_mode = NO_HEADER | SEPARATE_FILES | DO_UNSHAR | DO_PATCH;
- mode_text = "Patch";
- **************
- *** 157,170
-
- patch1:
- prompt("\1%s Directory:\1 ", mode_text);
- ! save_name = get_s(last_dir, NONE, NONE, file_completion);
- ! if (save_name == NULL) return NULL;
- ! if (*save_name == NUL)
- ! save_name = NULL;
- ! else {
- ! strcpy(last_dir, save_name);
- ! }
- !
- break;
-
- case K_PRINT:
- --- 163,171 -----
-
- patch1:
- prompt("\1%s Directory:\1 ", mode_text);
- ! save_name = get_s(last_dir, current_group->save_file, NONE, file_completion);
- ! if (save_name == NULL || *save_name == NUL) return NULL;
- ! strcpy(last_dir, save_name);
- break;
-
- case K_PRINT:
- **************
- *** 198,204
-
- if (!(save_mode & IS_PIPE)) {
- if (file_exist(save_name, (save_mode & DO_UNSHAR) ? "wd" : "wf")) {
- ! if (conf_append && (save_mode & DO_UNSHAR) == 0) {
- printf("\rAppend to: %s ? ", save_name);
- clrline();
- if (!yes(0)) return NULL;
- --- 199,210 -----
-
- if (!(save_mode & IS_PIPE)) {
- if (file_exist(save_name, (save_mode & DO_UNSHAR) ? "wd" : "wf")) {
- ! if (save_mode & DO_UNSHAR) {
- ! int len = strlen(save_name);
- ! if (save_name[len - 1] != '/')
- ! strcpy(save_name + len, "/");
- ! } else
- ! if (conf_append) {
- printf("\rAppend to: %s ? ", save_name);
- clrline();
- if (!yes(0)) return NULL;
- **************
- *** 210,216
- }
-
- if (save_mode & DO_UNSHAR) {
- ! strcat(save_name, "/");
- }
-
- start = ckdir_path(save_name);
- --- 216,224 -----
- }
-
- if (save_mode & DO_UNSHAR) {
- ! int len = strlen(save_name);
- ! if (save_name[len - 1] != '/')
- ! strcpy(save_name + len, "/");
- }
-
- start = ckdir_path(save_name);
- **************
- *** 244,249
-
- save_mode |= FILE_IS_NEW; /* so save() will open it */
-
- #ifdef PAGED_OUTPUT
- if (save_mode & DO_UNSHAR) {
- int was_raw = no_raw();
- --- 252,262 -----
-
- save_mode |= FILE_IS_NEW; /* so save() will open it */
-
- + if (save_mode & DO_DECODE) {
- + uud_start(save_name);
- + save_mode &= ~DO_UNSHAR;
- + }
- +
- #ifdef PAGED_OUTPUT
- if (save_mode & DO_UNSHAR) {
- int was_raw = no_raw();
- **************
- *** 258,264
- system("fdcheck");
- }
- #endif
- !
- return save_name;
- }
-
- --- 271,277 -----
- system("fdcheck");
- }
- #endif
- !
- return save_name;
- }
-
- **************
- *** 284,289
- return 0;
- }
-
- if (save_mode & UNIQUE_FILES) {
- do {
- uniq_counter++;
- --- 297,309 -----
- return 0;
- }
-
- + if (save_mode & DO_DECODE) {
- + save_file = NULL;
- + c = uudecode(ah, art);
- + fclose(art);
- + return (c < 0) ? 0 : 1;
- + }
- +
- if (save_mode & UNIQUE_FILES) {
- do {
- uniq_counter++;
- **************
- *** 317,323
- sprintf(copybuf, "%s %s", unshar_cmd, pager_redir);
- #else
- sprintf(copybuf,
- ! "cd %s && %s | tee %s 2>&1 ; cat %s >> %s.Result ; rm %s",
- save_name != NULL ? save_name : ".", unshar_cmd,
- temp_file, temp_file,
- (save_mode & DO_PATCH) ? "Patch" : "Unshar",
- --- 337,343 -----
- sprintf(copybuf, "%s %s", unshar_cmd, pager_redir);
- #else
- sprintf(copybuf,
- ! "cd %s && { %s 2>&1 ; } | tee %s ; cat %s >> %s.Result ; rm %s",
- save_name != NULL ? save_name : ".", unshar_cmd,
- temp_file, temp_file,
- (save_mode & DO_PATCH) ? "Patch" : "Unshar",
- **************
- *** 450,455
- save_file = NULL;
- }
-
- #ifdef PAGED_OUTPUT
- if (pager_stream != NULL) {
- pclose(pager_stream);
- --- 470,478 -----
- save_file = NULL;
- }
-
- + if (save_mode & DO_DECODE) {
- + uud_end();
- + }
- #ifdef PAGED_OUTPUT
- if (pager_stream != NULL) {
- pclose(pager_stream);
-
- *** /usr/storm/nn6.3.0/selection.c
- --- selection.c
- **************
- *** 17,22
- } header;
-
- #ifndef NETWORK_DATABASE
- #undef ntohl
- #undef htonl
- #undef NETWORK_BYTE_ORDER
- --- 17,27 -----
- } header;
-
- #ifndef NETWORK_DATABASE
- + #undef NETWORK_BYTE_ORDER
- + #define NETWORK_BYTE_ORDER
- + #endif
- +
- + #ifdef NETWORK_BYTE_ORDER
- #undef ntohl
- #undef htonl
- #define ntohl(x) (x)
- **************
- *** 19,25
- #ifndef NETWORK_DATABASE
- #undef ntohl
- #undef htonl
- - #undef NETWORK_BYTE_ORDER
- #define ntohl(x) (x)
- #define htonl(x) (x)
- #define NETWORK_BYTE_ORDER
- --- 24,29 -----
- #ifdef NETWORK_BYTE_ORDER
- #undef ntohl
- #undef htonl
- #define ntohl(x) (x)
- #define htonl(x) (x)
- #endif
- **************
- *** 22,28
- #undef NETWORK_BYTE_ORDER
- #define ntohl(x) (x)
- #define htonl(x) (x)
- - #define NETWORK_BYTE_ORDER
- #endif
-
- struct sel_art {
- --- 26,31 -----
- #undef htonl
- #define ntohl(x) (x)
- #define htonl(x) (x)
- #endif
-
- struct sel_art {
-
- *** /usr/storm/nn6.3.0/sequence.c
- --- sequence.c
- **************
- *** 175,181
- if (st.st_size == 0 || st.st_mtime < st.st_atime) return;
-
- mail_group.group_name = read_mail;
- ! gh->group_flag = G_FOLDER | G_MAILBOX | G_RC_UPDATED | G_READ;
-
- /* "invent" an unread article for read_news */
- gh->last_article = 1;
- --- 175,181 -----
- if (st.st_size == 0 || st.st_mtime < st.st_atime) return;
-
- mail_group.group_name = read_mail;
- ! gh->group_flag = G_FOLDER | G_MAILBOX | G_READ;
-
- /* "invent" an unread article for read_news */
- gh->last_article = 1;
- **************
- *** 367,373
- mem_check(gh, 1, "group header");
-
- gh->group_name = name;
- ! gh->group_flag = flag | G_RC_UPDATED | G_READ;
-
- /* "invent" an unread article for read_news */
- gh->last_article = 1;
- --- 367,373 -----
- mem_check(gh, 1, "group header");
-
- gh->group_name = name;
- ! gh->group_flag = flag | G_READ;
-
- /* "invent" an unread article for read_news */
- gh->last_article = 1;
- **************
- *** 392,398
-
- if (strcmp(group, "NEW") == 0) {
- gs_mode = GS_NEW_GROUP;
- ! gs_length = 127;
- } else {
- gs_mode = GS_PREFIX;
-
- --- 392,398 -----
-
- if (strcmp(group, "NEW") == 0) {
- gs_mode = GS_NEW_GROUP;
- ! gs_length = 0;
- } else {
- gs_mode = GS_PREFIX;
-
-
- *** /usr/storm/nn6.3.0/term.c
- --- term.c
- **************
- *** 213,218
-
- if ((term_name = getenv("TERM")) == NULL)
- user_error("No TERM variable in enviroment");
-
- #ifdef USE_TERMINFO
- setupterm(0,1,0);
- --- 213,224 -----
-
- if ((term_name = getenv("TERM")) == NULL)
- user_error("No TERM variable in enviroment");
- +
- + #ifdef HAVE_TERMIO
- + ioctl(0, TCGETA, &norm_tty);
- + #else
- + ioctl(0, TIOCGETP, &norm_tty);
- + #endif
-
- #ifdef USE_TERMINFO
- setupterm(0,1,0);
- **************
- *** 291,300
- cookie_size = two_cookies = 0;
-
-
- - #ifdef HAVE_TERMIO
- -
- - ioctl(0, TCGETA, &norm_tty);
- -
- raw_tty = norm_tty;
-
- raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
- --- 297,302 -----
- cookie_size = two_cookies = 0;
-
-
- raw_tty = norm_tty;
-
- #ifdef HAVE_TERMIO
- **************
- *** 297,302
-
- raw_tty = norm_tty;
-
- raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
- raw_tty.c_iflag |= IGNBRK|IGNPAR|ISTRIP;
- raw_tty.c_oflag &= ~OPOST;
- --- 299,305 -----
-
- raw_tty = norm_tty;
-
- + #ifdef HAVE_TERMIO
- raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
- raw_tty.c_iflag |= IGNBRK|IGNPAR|ISTRIP;
- raw_tty.c_oflag &= ~OPOST;
- **************
- *** 307,315
- raw_tty.c_cc[VEOL] = ((raw_tty.c_cflag & CBAUD) > B1200) ? 1 : 2;
-
- #else
- -
- - ioctl(0, TIOCGETP, &norm_tty);
- -
- ioctl(0, TIOCGETC, &norm_chars);
-
- #ifdef TIOCGLTC
- --- 310,315 -----
- raw_tty.c_cc[VEOL] = ((raw_tty.c_cflag & CBAUD) > B1200) ? 1 : 2;
-
- #else
- ioctl(0, TIOCGETC, &norm_chars);
-
- #ifdef TIOCGLTC
- **************
- *** 318,325
-
- ospeed = norm_tty.sg_ospeed;
- if (ospeed < B2400) slow_mode++;
- -
- - raw_tty = norm_tty;
-
- raw_tty.sg_flags |= RAW;
- raw_tty.sg_flags &= ~(ECHO|CRMOD);
- --- 318,323 -----
-
- ospeed = norm_tty.sg_ospeed;
- if (ospeed < B2400) slow_mode++;
-
- raw_tty.sg_flags |= RAW;
- raw_tty.sg_flags &= ~(ECHO|CRMOD);
-
- *** /usr/storm/nn6.3.0/xmakefile
- --- xmakefile
- **************
- *** 55,61
- init.o variable.o term.o keymap.o macro.o regexp.o \
- menu.o more.o rc.o group.o folder.o \
- articles.o sequence.o selection.o kill.o \
- ! answer.o reroute.o save.o unshar.o execute.o \
- pack_date.o pack_name.o pack_subject.o news.o digest.o match.o
-
- MAIL = nnmail.o reroute.o global.o options.o update.o
- --- 55,61 -----
- init.o variable.o term.o keymap.o macro.o regexp.o \
- menu.o more.o rc.o group.o folder.o \
- articles.o sequence.o selection.o kill.o \
- ! answer.o reroute.o save.o unshar.o decode.o execute.o \
- pack_date.o pack_name.o pack_subject.o news.o digest.o match.o
-
- MAIL = nnmail.o reroute.o global.o options.o update.o
- **************
- *** 195,200
- date_regexp.o: config.h global.h data.h
-
- db.o: db.c config.h global.h data.h db.h
-
- digest.o: digest.c config.h global.h data.h news.h match.h
-
- --- 195,202 -----
- date_regexp.o: config.h global.h data.h
-
- db.o: db.c config.h global.h data.h db.h
- +
- + decode.o: decode.c config.h
-
- digest.o: digest.c config.h global.h data.h news.h match.h
-
-
-